Here You can download the total set of this documentation files in a single archive XCLdoc.zip |
This page is updated very often, so click 'Reload' button in your browser to get fresh version! |
Here You can see list of available problems to solve named
'tasks'. If problem is solved or it is solving now then name of member is
appearing in right column of table below. Any case name of task in left
column is referred onto more detailed description of this one in separate html
(if such description is ready). You may click it to read either project
definition or final description if task finished. If You feel that task list not
full, feel free to e-mail me about it to suggest new necessary task name and its
brief and/or detailed definitions.
Choose one of not
allocated problems to become a member or if You consider that task list is not
complete, add your own here. Feel Yourself free to use source of any solved task
similar given to get a template to solve any other. If You give task be remember
that Your code must satisfy to basic
principles of XCL project. E-mail me, if You are ready
to vote yourself as XCL developers team member.
Task name |
Task description |
Status |
XClass and XChild
in XClasses.pas |
Similar TComponent in VCL. But it is descending from TObject and differ from this last mainly by ability to have parent XClass object and list of child XClass objects. Parent is responsible for destroying of childs when it is destroyed. | finished by Mr.Bonanzas
- 16-Jun-99;
improved by GuX, 13-Oct-99 (type LongWord for Delphi3) |
XVisual
in XVisuals.pas |
Ancestor of XWindow and XControl. Intended to provide XForm (->XWindow) and XControl with common virtual methods and properties (BoundsRect, ClientRect, Visible, Enabled and so on). | finished by Mr.Bonanzas - 16-Jun-99 |
XWindow
in XWindows.pas |
Similar TWinControl and TForm in VCL. Provides registration of window in Windows environment and basic functionality of it (message handling, creating, destroying). | finished by Mr.Bonanzas - 16-Jun-99 |
XApplet
in XApplets.pas |
Similar TApplication in VCL provides running of applet, interface with main window, loop of messages dispatching. | finished by Mr.Bonanzas - 16-Jun-99, modified by C.Kok, 5-Sep-99 |
XForm
in XForms.pas |
Similar TForm in
VCL but without reading itself from executable. Just XWindow with ability
to have XControl objects as childs. Responsible for painting, focusing,
mouse and keyboard events handling. In contrast to VCL TForm, is simplified by avoiding of support of printing form, responding for MDI, scaling, aligning of controls. And at least it can not read itself from executable. |
finished by Mr.Bonanzas - 18-Jun-99 |
XFormAutoSizer
in XFormAutoSize.pas |
Add-on module for autosizing of XForm and its descenders and XControl descenders with child controls. It is adding by calling of UseAutoSizer increasing applet for several Kbytes. | finished by Mr.Bonanzas - 19-Jun-99 |
XAligner
in XAlign.pas |
If used in applet
(by calling UseAligns), adds for all XForm(s) and its descenders support
of Align property for all its child controls, which are using this
one. If this add-on is not used, executable become smaller for about 3Kbytes. |
finished by Mr.Bonanzas - 19-Jun-99 |
XResizeAntiFlicker
in XResize.pas |
This add-on when used
(by call UseResizeAntiFlicker) eliminates flickering of controls aligned
to opposite side to moving with mouse border edge during x-form resizing.
There are no similar solutions for VCL, and I think this task can not have
solution in Delphi VCL in common case at all. Even in XCL
ResizeAntiFlicker works better for forms without MFC-based controls (and
in VCL the most of controls are MFC-based). When used, increases size of executable by 4Kbytes. |
finished by Mr.Bonanzas - 05-Sep-99 |
XFormsStdMouseEvents
in XMouseEvents.pas |
Add-on for XForm for handling mouse events. It is included into final executable only by calling UseStdMouse adding about 1Kb. | finished by Mr.Bonanzas - 02-Jul-99 |
XFormsStdKeyEvents
in XKeyboardEvents.pas |
Add-on for XForm adding keyboard handling and tabulating between controls. It is added to executable only by calling UseKeyboard increasing size of applet onto about 1,5Kb. | finished by Mr.Bonanzas - 02-Jul-99 |
XControlAutoPlacer
in XControlAutoPlace.pas |
If used, it adds for all XForm(s) support of autoplacing and autoresizing controls when size and / or position of its childs are changed. This allow to adjust size and position of controls and form itself so its never overlaps and form always is shown correctly independently of screen resolution, font sizes and so on. | finished by Mr.Bonanzas - 19-Jun-99 |
XControl
in XForms.pas |
Similar TGraphicControl in VCL. In XCL it is a descendent of XVisual. Created as a child of XForm, which simulates focusing and provides device context for it while painting. | finished by Mr.Bonanzas - 18-Jun-99 |
COMMON UTILITIES | ||
ZList
in XClasses.pas |
Similar TList in Delhi VCL, but more simple (does not not support sorting, has no Move or Swap methods). | finished by Mr.Bonanzas - 16-Jun-99 |
ZTimer, XTimer
in XTimers.pas |
Objects to encapsulate Windows timer. Similar to TTimer in VCL, but ZTimer and XTimer are using applet button window and handles messages directly. ZTimer is derived from TObject so You are responding for its freeing. XTimer can be child of any other XClass (in that case it is destroying when its parent is freeing). | finished by Mr.Bonanzas - 02-Jun-99, 27-Jul-99, 08-Sep-99 |
ZThread
in XThreads.pas |
Similar to TThread in VCL, but easier. | by Tim
Slusher, finished Oct-99 |
XMenu, XPopup
in XMenus.pas |
Similar to TMainMenu and TPopupMenu in VCL. But very simple. These two classes allow to create easy statically designed (as a list of strings) menu with submenus. | finished by Mr.Bonanzas - 27-Jul-99 |
XOpenSaveDialog
in XDialogs.pas |
Open/Save dialog implementation. | finished by Carlo Kok - 28-Oct-99 |
ZStrList, ZStringList, ZStrings
in XStrLists.pas |
Similar to TStringList in VCL. | finished by Tim Slusher 28-Sep-99 |
XWindowUtils.pas | Set of useful windows utility functions. FindWindowByThreadID, GetDesktopRect. | finished by Mr.Bonanzas 16-Nov-99 |
XStrUtils.pas | Set of necessary string utility functions. | finished by Mr.Bonanzas |
XDateUtils.pas | Set of functions to work with date and time. XDateTime in XCL made slightly another (days are counting from 30-Dec-0001 B.C., not from 30-Dec-1899 A.D. as it is made in VCL). | finished by Mr.Bonanzas - 25-Sep-99 |
XFileUtils.pas | Set of functions to work with files (XFileExists, XFileCreate, XFileSeek functions). | by Mr.Bonanzas, improved by Tim Slusher 28-Sep-99 |
ZFileChange
in XFileChange.pas |
Class (derived from ZThread) to notify about changes in given folder or folders tree. | by Tim Slusher 21-Oct-99, finished |
XShellLinks.pas | Set of functions to work with Wondows shortcuts (shell links). Now function ResolveLink is ready to use. | finished by Mr.Bonanzas - 16-Nov-99 |
XStreams.pas | ZStream, ZFileStream and ZMemoryStream classes to work with streams. | by Tim Slusher 28-Sep-99 |
function JustOne( Id : String ) : Boolean
in XJustOne.pas |
Very simple JustOne function to allow only one instance of given applet to execute. | finished by Mr.Bonanzas - 30-Sep-99 |
function JustOneNotify(...) : Boolean and
JustOneNotifier: ZJustOneNotifier
in XJustOneNotify.pas |
Like above, but allows also get notifications about attempts to run other instances of applet and command line parameters string of correspondent 'execute' command. | finished by Mr.Bonanzas - 30-Sep-99 |
ZTrayIcon
in XTrayIcons.pas |
Allows place icon on tray, remove it, change it or its tooltip text and get mouse messages from it. | finished by Mr.Bonanzas - 30-Sep-99 |
HIGH-LEVEL GRAPHICS SUPPORT | ||
XGraphicObject, XPen,
XBrush, XFont,
XGraphicsManager
in XGraphics.pas |
Basic graphics objects and other definition. Primarily these are used with XCanvas, but can be used separately. | finished by Mr.Bonanzas - 20-Jun-99 |
XCanvas, XCanvasManager
in XCanvases.pas |
Similar TCanvas in VCL but smaller and more simple. It does not avoid duplicating of resources but it is intended to paint mainly on WM_PAINT message and this ability is not necessary. At least, it is possible to use additional XCanvasObjectsManager to reuse resources at the expense of increasing code. | finished by Mr.Bonanzas - 20-Jun-99 |
XCanvasObjectManager
in XCanvasObjects.pas |
Intended to expand XCanvas with ability to void of duplicating resources and reuse it from heap. If it is not used, executable can be smaller. It is recommended to use it if applet is performing a lot of painting or have big number of controls - to reduce needs in GDI resources. | finished by Mr.Bonanzas - 20-Jun-99 |
XFontRotator
in XRotateFonts.pas |
This add-on is intended to allow painting of rotated text (in XLabel and other controls, using XLabel). Setting property Orientation of XFont object is not sufficient to paint rotated text correctly. FontRotator calculates correct size of area to place rotated text and origin point to pass it to Windows.TextOut function. | finished by Mr.Bonanzas - 20-Jun-99, 19-Jul-99 |
XImageList
in XImgLists.pas |
API ImageList implementation for XCL (similar to TImageList in Delphi, but easier). | finished by Mr.Bonanzas - 10-Oct-99 |
ZPicture
in XImages.pas |
Abstract class to derive different image storages from it (bitmaps, icons and so on). | finished by Mr.Bonanzas - 18-Oct-99 |
ZDDB
in XImages.pas |
First bitmap class to store
Device Dependent Bitmaps. More useful than hBitmap handle because can have
Canvas and allows painting onto it. It is possible to free canvas at any
time without loosing of the image. Format of image can not be changed and depends on Windows screen mode. |
finished by Mr.Bonanzas - 18-Oct-99 |
ZHiBmp
in XImages.pas |
Extended DDB. Allows changing of format. Ambigous if You are going to use DIB bitmaps (below). | finished by Mr.Bonanzas - 18-Oct-99 |
ZDIBitmap
in XImages.pas |
Intended to store
Device Independent Bitmap. Pixels of DIB can be directly accessed using
property ScanLines[] and function GetScanLine (faster). ZDIBitmap does not support pf4bit and pf8bit formats, which needs of palette handling. ZDIBitmap needs in Canvas only to paint onto its surface. To draw bitmap itself Canvas is not necessary. This last (and other GDI resources) can be safely free using FreeResources. |
finished by Mr.Bonanzas - 18-Oct-99 |
ZBitmap
in XImages.pas |
Full featured DIB bitmap (supporting all formats and handling palette). As well as ZDIBitmap, can draw itself (onto another DC) without Canvas; and allows accessing of pixels fast with ScanLines[] property or GetScanLine function (even faster) | finished by Mr.Bonanzas - 18-Oct-99 |
ZIcon
in XImages.pas |
Icon incapsulator. Similar to TIcon in VCL. | finished by Mr.Bonanzas - 18-Oct-99 |
ZGifDecoder, ZGif
in XGifs.dcu |
Gif87a and Gif89a
implementations for XCL. Calculating exact transparency mask, allow
correct showing of any gif clips. ZGifDecoder is similar to freeware TGifImage from RxLib, but calculates exact transparency mask for every frame. Just decodes gif into series of bitmaps. ZGif provides correct painting of resulting frames of animated gif (it already combined all the frames and it is only need to call its drawing methods to paint given frame). Also ZGif allows to economy resources using its method FreeResources after drawing every frame. |
finished by Mr.Bonanzas - 11-Nov-99 |
SELF-PAINTING CONTROLS
These controls require XCanvas and perform painting and other controlling itself, using only API calls. So, size of applet using such controls, is greater then in case of using MFC-based controls only (see below). But is You want to get some effects (e.g. rotating font in labels) or to replace some standard controls with more efficient, this is your choice. All the more self-painting controls do not require window handle, so needs in user resources can be reduced using these ones.
| ||
XCustomControl
in XControls.pas |
Prototype of self-painting controls, which use canvas of parent form. | finished by Mr.Bonanzas - 22-Jun-99 |
XLabel
in XControls.pas |
Simple self-painting label similar to TLabel in Delphi (but can not WrapWords and to be transparent). | finished by Mr.Bonanzas - 22-Jun-99 |
XCustomBevel
in XControls.pas |
Prototype of beveled controls (panels, buttons and so on). | finished by Mr.Bonanzas - 23-Jun-99 |
XBevel
in XControls.pas |
Simple panel without caption, beveled as default with raised 3D-frame. | finished by Mr.Bonanzas - 23-Jun-99 |
XPanel
in XControls.pas |
Panel very like to TPanel in Delphi. Uses internally XLabel to draw caption. | finished by Mr.Bonanzas - 24-Jun-99 |
XSplitPanel
in XSplitPanels.pas |
Panel, divided onto several
inner panels. This control requires XAligns add-on and necessarily
includes this last into executable. Inner panels can be sized with mouse
if add-on XSplitSizing is used (call UseSplitSizer). Inner panels ( which are derived from XPanel ) can be put vertically or horizontally, from left/top to right/bottom or from right/bottom to left/top (the last of inner panels is client-aligned, so Side property determines which panel will resizing with form - first or last). |
finished by Mr.Bonanzas - 31-Jul-99 |
XStatus
in XSplitPanels.pas |
Status bar similar to VCL TStatusBar but even more power if add-on XSplitSizing is used (in that case inner panels can be sized with mouse). | finished by Mr.Bonanzas - 31-Jul-99 |
XSplitSizer
in XSplitSizing.pas |
Add-on, allowing splitting of XSplitPanel and its descendents (i.e., XStatus). | finished by Mr.Bonanzas - 31-Jul-99 |
XGrep
in XControls.pas |
Special control to draw grep in bottom-right corner of parent control (usually panel, status inner panel or any other XCustomBevel descendant). Also provides response to WM_NCHITTEST message, growing area where cursor becomes NW-SE and sizing of form is possible. | finished by Mr.Bonanzas 31-Jul-99 |
XGroup
in XControls.pas |
Similar TGroupBox in Delphi. Can have title on any part of border. | finished by Mr.Bonanzas - 25-Jun-99 |
XPaint
in XControls.pas |
Simple self-painting control with OnPaint message (similar to TPaint in Delphi VCL). | finished by Mr.Bonanzas - 25-Jun-99 |
XCustomCheckBox
in XControls.pas |
Prototype for checkboxes and radioboxes. | finished by Mr.Bonanzas - 26-Jun-99 |
XCheckBox
in XControls.pas |
Simple checkbox without caption. | finished by Mr.Bonanzas - 26-Jun-99 |
XRadioBox
in XControls.pas |
Simple radiobox without caption. | finished by Mr.Bonanzas - 27-Jun-99 |
XCustomCheck
in XControls.pas |
Prototype for XCheck and XRadio (look below). | finished by Mr.Bonanzas - 27-Jun-99 |
XCheck
in XControls.pas |
Checkbox with caption similar to VCL TCheckBox. | finished by Mr.Bonanzas - 27-Jun-99 |
XRadio
in XControls.pas |
RadioBox with caption similar to VCL TRadioBox. | finished by Mr.Bonanzas - 28-Jun-99 |
XCustomButton
in XControls.pas |
Simple button without caption or picture. It is intended mainly as prototype of button but therefore can be used itself. | finished by Mr.Bonanzas - 29-Jun-99 |
XButton
in XControls.pas |
Simple button with caption. Can be fixed, focusable or speed button, autosizable, aligned, ... | finished by Mr.Bonanzas - 30-Jun-99 |
XDropButton
in XControls.pas |
Simple button to represent drop (up, down, right, left) triangle arrow. | finished by Mr.Bonanzas - 01-Aug-99 |
XImgButton
in XImgButtons.pas |
Button with image and caption (similar to TBitBtn component in VCL). Uses image from XImageList. | finished by Mr.Bonanzas - 10-Oct-99 |
XScroller
in XControls.pas |
Similar to TScrollbar in VCL and even more power. | finished by Mr.Bonanzas - 28-Aug-99 |
XScrollBar
in XControls.pas |
Similar XScroller, but more specialized to work in pare with another scrollbar on the same parent control. | finished by Mr.Bonanzas - 28-Aug-99 |
XScrollBox
in XControls.pas |
Similar TScrollBox in VCL. It allows place into and scroll other controls. | finished by Mr.Bonanzas - 30-Aug-99 |
XEdit
in XEdits.pas |
Similar TEdit in VCL. | finished by Mr.Bonanzas - 08-Sep-99 |
XCaretShower
in XCarets.pas |
Add-on providing the
painting of blinking caret in edit controls which are derived from
XCustomControl (like XEdit) and has no window handle. It does not use
Windows' caret APIs, instead it paints caret itself what requires about
1Kbytes of code, but is looking more correctly when controls are
overlapped and requires nothing when not used. Activated by call UseCaret( True ). Can be deactivated at run time. |
finished by Mr.Bonanzas - 08-Sep-99 |
XEditMouseSelect
in XEditMouseSel.pas |
Add-on to provide selecting of portions of text in XEdit control with mouse and to scroll its content with mouse. | finished by Mr.Bonanzas - 08-Sep-99 |
XEditClipboard
in XEditClipbrd.pas |
Add-on to provide copying/cutting selected part of XEdit text to clipboard and pasting from clipboard to XEdit. | finished by Mr.Bonanzas - 08-Sep-99 |
XEditUndo
in XEditUndoExt.pas |
Add-on to provide undo/redo operations for XEdit on pressing CTRL-Z, CTRL-SHIFT-Z or by calling appropriate methods. | finished by Mr.Bonanzas - 10-Sep-99 |
XCustomGrid
in XGrids.pas |
Similar to TCustomGrid in VCL but lighter. | finished by Mr.Bonanzas - 12-Sep-99 |
XGrid
in XGrids.pas |
Similar to TDrawGrid in VCL but lighter (no fixed rows and columns). | finished by Mr.Bonanzas - 12-Sep-99 |
XListView
in XLists.pas |
Similar to TListBox in VCL (without editing). | finished by Mr.Bonanzas - 14-Sep-99 |
XListMouseSelect
in XListMouseSel.pas |
Add-on which allows mouse positioning, selecting and scrolling for XListView. | finished by Mr.Bonanzas - 14-Sep-99 |
XListKeySelect
in XListKeySel.pas |
Add-on which will allow positioning, selecting and scrolling of lines in XListView with keyboard. | finished by Mr.Bonanzas - 15-Sep-99 |
XListEdit
in XListEditExt.pas |
Add-on to provide editing lines of XListView using temporarily created XEdit control. | finished by Mr.Bonanzas - 16-Sep-99 |
XNotebook
in XControls.pas |
Similar to TNotebook in VCL. Allows to place children controls on several Pages[], only one of which last (ActivePage) is visible at the time. | finished by Mr.Bonanzas - 20-Sep-99 |
XTabs
in XControls.pas |
It seems to be like as TTabControl but slightly different in appearance and behaviour, especially in case than a lot tabs are needed to be shown. I think, my solve of this task more complient then in VCL. | finished by Mr.Bonanzas - 20-Sep-99 |
XTabbedNotebook
in XControls.pas |
It is the union of XTabs and XNotebook, where XTabs is controlling ActivePage of Notebook and can be placed at one of four sides of the last. | finished by Mr.Bonanzas - 20-Sep-99 |
XCalendar
in XCalendars.pas |
Similar TCalendar in VCL. Can be horizontal or vertical - oriented, first day of week can be changed from Sunday to other (e.g., Monday), and some other features make it even more power (then TCalendar). | finished by Mr.Bonanzas - 26-Sep-99 |
XGauge
in XControls.pas |
Similar TGauge. | finished by Mr.Bonanzas - ??-Sep-99 |
XHysto
in XHystogramms.pas |
Allows to store and graphically represent mesure values. Has very big set of adjustments. |
finished by Mr.Bonanzas - 24-Nov-99 |
MFC-BASED CONTROLS These controls are very important,
because it is very easy to create it just constructing interface with
existing (globally in Windows) control classes. These classes are located
in standard DLL's, which are supplied by Windows itself. And these are
painting and controlling itself, so code of Mfc-based controls is very
small, and applet can use large set of those without great growing of size
of executable.
| ||
XMfcControl
in XMfcControls.pas |
The prototype for all Mfc-based controls below. Derive new Mfc-based controls from it. | finished by Mr.Bonanzas - 19-Jul-99 |
XWCustomStatic
in XMfcControls.pas |
The implementation of 'STATIC' control. Needs in further detailization. Potentially can be ancestor of static text label, static bitmap/icon image or event play role of panel with bevels. | finished by Mr.Bonanzas - 19-Jul-99 |
CLabel
in XMfcControls.pas |
Derived from XWCustomStatic, is presenting natural Windows label (similar TStaticText in Delphi VCL). If You plan change it often, use anti-flickering add-on below. | finished by Mr.Bonanzas - 19-Jul-99 |
XWCustomPaint
in XMfcControls.pas |
Prototype of owner-painting controls. Implemented next after XWlabel to derive XMfcCover (local in XMfcAntiFlick.pas). This last was required to cover XWLabel temporarily and prevent flicks in WM_SETTEXT message. | finished by Mr.Bonanzas - 19-Jul-99 |
CPaint
in XMfcControls.pas |
Derived from XWCustomPaint. Similar to TPaintBox in VCL. | finished by Mr.Bonanzas - 19-Jul-99 |
XMfcAntiFlicker
in XMfcAntiFlick.pas |
Add-on to avoid flicks
in Mfc-based controls: (1st) by painting through memory bitmap buffer;
(2nd) by preventing changing of caption during assignment new
one. Just call procedure UseMfcAntiFlicker before creating the first form in dpr-file (as well as for other add-ons). Size of code added there is about 2 Kbytes. |
finished by Mr.Bonanzas - 19-Jul-99 |
CButton
in XMFCControls.pas |
Standard Windows button. | by Tim Slusher (& Vladimir Kladov), finished 27-Oct-99 |
CEdit | Standard Windows edit control. | by Tim Slusher finished 5-Nov-99 |
CMemo | Similar to TMemo in VCL. | by Tim Slusher finished 5-Nov-99 |
XCL TOOLS This part contains definition of possible external tools which (could be) made using standard VCL. Such utility applications could be used to simplify programming in XCL which is not now "visual" process and seems to be harder then working in IDE. As it is said in introduction, we have to refuse from such IDE beauties as visual form designing using Components Palette and Object Inspector. But this does not mean that it is impossible to create wizard, which could play role of these great tools. Such wizard could allow to design XCL forms and adjust its controls properties and events making XCL-plogramming visual and convenient again. | ||
XCL Wizard | Tool, which allow
to preview XCL form, drop controls onto it, inspect and change its
properties and events similar to how IDE shell does for standard VCL
form. Designer takes definitions of controls from its source (may be, taking some of those from comments). In result designer has to generate source for dpr-file and project units. It would be pleasure if the Designer could work interactively generating source code immediately in correspondance with performed commands similar that IDE does. |
??? |
XCL Help This set of documents can be used as help. Well, but creating of help in hlp-format could be very useful to get context help when coding under XCL. If anybody has sufficient experience in creating such format of help and installing it into IDE help, I would be appritiate to accept your assistance. | ||
XCL.hlp | Translation of this
documents set into standard Windows .hlp-file (or set of such
files). It is desirable to provide files, needed to traslate its into "hlp" using hhw.exe, because documentation about XCL is always under construction. |
??? |
Here You can see part of hierarchy tree of ready to use XCL controls.
Here You can download the total set of this documentation files in a single archive XCLdoc.zip | Idea of XCL Copyright (C) Kladov Vladimir, 1999 |